package BehaviorModel.stateModel;

import java.util.Random;

/**
 * 功能描述: 可抽奖状态
 * 2024/02/20
 *
 * @see State
 * ZhangYi
 */
public class CanRaffleState extends State{

    private  RaffleActivity activity;

    public CanRaffleState(RaffleActivity raffleActivity) {
        this.activity = raffleActivity;
    }

    @Override
    public void deductMoney() {
        System.out.println(" 已经扣除过积分了 ");
    }

    /**
     * 功能描述: 可以抽奖, 抽完奖后，根据实际情况，改成新的状态
     *
     * @return boolean
     */
    @Override
    public boolean raffle() {
        System.out.println(" 正在抽奖,请稍等 ");
        Random r = new Random();
        int num = r.nextInt(10);

        if (num == 0) {
            System.out.println(" 抽中奖了 ");
            // 抽中奖 之后 - 设置状态为 发放奖品状态
            activity.setState(activity.getDispenseState());
            return true;
        }else {
            System.out.println(" 没有中奖下次继续努力吧! ");
            // 没有中奖, 设置状态为 不可抽奖状态
            activity.setState(activity.getNoRaffleState());
            return false;
        }

    }

    @Override
    public void dispensePrize() {

    }
}
